package br.edu.delta.dao;

import java.util.Collection;

import javax.ejb.Stateless;

import org.hibernate.Criteria;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;

import br.edu.delta.model.Leitor;

/**
 * <p>
 * <b>Title:</b> LeitorDAO
 * </p>
 * 
 * <p>
 * <b>Description:</b> LeitorDAO
 * </p>
 * 
 * <p>
 * <b>Company: </b>
 * </p>
 * 
 * @author Denis
 * 
 * @version 1.0.0
 */
@Stateless
public class LeitorDAO extends AppDAO<Leitor> {

	/** Atributo serialVersionUID. */
	private static final long serialVersionUID = -1L;

	/**
	 * Método responsável por pesquisar leitor por nome
	 * 
	 * @author Denis
	 * 
	 * @param nome
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public Collection<String> pesquisarLeitoresPorNome(String nome) {
		
		Criteria criteria = novaCriteria();

		criteria.add(Restrictions.ilike("nome", "%" + nome + "%"));
		
		criteria.setProjection(Projections.property("nome"));
		
		return criteria.list();

	}

	public Leitor pesquisarLeitorPorNome(String nome) {

		Criteria criteria = novaCriteria();

		criteria.add(Restrictions.ilike("nome", nome));
		
		criteria.setMaxResults(1);
		
		return (Leitor) criteria.uniqueResult();
	}

}
